#ifndef NETMAIN_H
#define NETMAIN_H

#include <QObject>

class MyTcpServer;
/**
 * @brief Tcp网络服务主类
 * @author Albert
 * @date 2022-04-29
 * @version V1.0
 */
class NetMain : public QObject
{
    Q_OBJECT
protected:
    explicit NetMain(QObject *parent = nullptr);

public:
    /**
     * @brief 获取单例对象
     * @return 单例对象
     */
    static NetMain* getObject();
    /**
     * @brief 网络初始化
     */
    void netInit();
    /**
     * @brief 服务启动
     * @return 启动结果
     */
    bool netStart();
    /**
     * @brief 服务停止
     */
    void netStop();
    /**
     * @brief 获取最后一次失败的原因
     * @return 原因
     */
    QString netGetLastErrorInfo();

protected:
    static NetMain * obj;
    MyTcpServer *server;
    QString errorInfo;
};

#endif // NETMAIN_H
